A messaging infrastructure is a key component in a distributed computing system. The messaging infrastructure is responsible for enabling communication (e.g., the sending and receiving of messages) between disparate components in the distributed computing system. The messaging infrastructure uses one or more message transports to send messages between the disparate components. In a conventional messaging infrastructure, such message transports include, for example, extensible markup language (XML), hypertext transport protocol (HTTP), transmission control protocol/internet protocol (TCP/IP), email and Java message service (JMS).
One limitation shared by the various message transports used in conventional messaging infrastructures is that these message transports lack durability. A message is generated, sent, received, and consumed. Once the message has been consumed, there is no record that the message ever existed. To remedy this, some conventional distributed computing systems use a message store. The message store intercepts and generates copies of all messages sent through the messaging infrastructure. These copies are then stored in the message store. The message store is an additional service that must be maintained, and adds complexity to the distributed computing system.